#!/usr/bin/env python3


class SequenceList:

    def __init__(self):
        self.SeqList = []

    def __str__(self):
        return "该表的元素如下: {0}".format(self.SeqList)

    def CreateSequenceList(self):
        input_str = input("请输入顺序表的元素, 输入'#'结束: ")
        while input_str != '#':
            self.SeqList.append(input_str)
            input_str = input("请输入顺序表的元素, 输入'#'结束: ")

    def FindElement(self):
        input_str = input("请输入顺序表中的待查找元素, 输入'#'结束: ")
        while input_str != '#':
            if input_str in self.SeqList:
                key_index = self.SeqList.index(input_str)
                print("找到{0}在表中{1}位置".format(input_str, key_index))
            else:
                print("未找到{0}".format(input_str))
            input_str = input("请输入顺序表中的待查找元素, 输入'#'结束: ")

    def InsertElement(self):
        """
        时间复杂度O(n) = n/2
        即长度为n的顺序表中每插入一个新元素，顺序表中所有元素平均需被移动n/2次
        """
        position = int(input("请输入顺序表中的待插入元素位置: "))
        value = input("请输入顺序表中的待插入元素值: ")
        self.SeqList.insert(position, value)
        print("插入后顺序表{0}".format(self.SeqList))
        print(self.SeqList.index(value))

    def DeleteElement(self):
        """
        时间复杂度O(n) = (n-1)/2
        即长度为n的顺序表中每删除一个新元素，顺序表中所有元素平均需被移动(n-1)/2次
        """
        position = int(input("请输入顺序表中的待删除元素位置: "))
        self.SeqList.remove(self.SeqList[position])
        print("删除后顺序表{0}".format(self.SeqList))

    def TravelElement(self):
        seq_len = len(self.SeqList)
        for i in range(0, seq_len):
            print("第{0}个元素的值: {1}".format(i+1, self.SeqList[i]))

    def GetExtremum(self):
        max_num = max(self.SeqList)
        min_num = min(self.SeqList)
        print("最大值: {0}, 最小值: {1}".format(max_num, min_num))



if __name__ == "__main__":
    seq_class = SequenceList()
    seq_class.CreateSequenceList()
    print(seq_class)
    #  seq_class.FindElement(seq_class.SeqList)
    #  seq_class.InsertElement()
    #  seq_class.DeleteElement()
    #  seq_class.TravelElement()
    seq_class.GetExtremum()
